package com.ym.medical.domain.param;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.ym.common.constant.BeanCovert;
import com.ym.medical.domain.entity.InquiryOrderEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 * ComputerName:LAPTOP-6GI4HOI6
 * Author:625
 * Date: 2019-05-09
 * Time: 16:17:31
 * Comment:查询扩展工具类
 */

@Data
@ApiModel(value = "问诊订单查询")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class InquiryOrderParam extends BeanCovert<InquiryOrderEntity> {


	private Long id;

	/**
	 * 用户ID
	 */
	@ApiModelProperty("用户ID")
	private Long userId;

	/**
	 * 定价实例ID
	 */
	@ApiModelProperty("定价实例ID")
	private Long ruleId;

	/**
	 * 问诊患者id
	 */
	@ApiModelProperty("问诊患者id")
	private Long patientId;

	/**
	 * 01找医生 02 自诊 03 快速问诊
	 */
	@ApiModelProperty("01找医生 02 自诊 03 快速问诊")
	private String orderSource;

	/**
	 * 病情描述
	 */
	@ApiModelProperty("病情描述")
	private String illnessDesc;

	/**
	 * 是否线下就诊
	 */
	@ApiModelProperty("是否线下就诊")
	private String isTreatment;

	/**
	 * 问诊人联系电话
	 */
	@ApiModelProperty("问诊人联系电话")
	private String phoneNo;

	/**
	 * 患病时长
	 */
	@ApiModelProperty("患病时长")
	private String illnessDuration;

	/**
	 * 过敏史
	 */
	@ApiModelProperty("过敏史")
	private String allergyHistory;

	/**
	 * 重大疾病,慢病例
	 */
	@ApiModelProperty("重大疾病,慢病例")
	private String majorDiseases;

	/**
	 * 订单编号
	 */
	@ApiModelProperty("订单编号")
	private String ioNum;

	/**
	 * 订单类型 01待接单 02已接单 03完成 04	取消 05待生效
	 */
	@ApiModelProperty("订单类型 01待接单 02已接单 03完成 04	取消 05待生效")
	private String ioType;

	/**
	 * 01 微信 02 支付宝 03 其它
	 */
	@ApiModelProperty("01 微信 02 支付宝 03 其它")
	private String paymentWay;

	/**
	 * 应付金额
	 */
	@ApiModelProperty("应付金额")
	private BigDecimal payableAmount;

	/**
	 * 实际支付金额
	 */
	@ApiModelProperty("实际支付金额")
	private BigDecimal paymentPrice;

	/**
	 * 01 待支付 02 已支付 03 退费申请中 04 已退费 05 订单异常 06 全科订单
	 */
	@ApiModelProperty("01 待支付 02 已支付 03 退费申请中 04 已退费 05 订单异常 06 全科订单")
	private String paymentState;

	/**
	 * 支付来源 (01-小程序 02-公众号)
	 */
	@ApiModelProperty("支付来源 (01-小程序 02-公众号)")
	private String paySource;

	/**
	 * 支付时间
	 */
	@ApiModelProperty("支付时间")
	private Date paymentTime;

	/**
	 * 预约时间的规则ID(目前仅视频问诊)
	 */
	@ApiModelProperty("预约时间的规则ID(目前仅视频问诊)")
	private Long appointTimeRule;

	/**
	 * null
	 */
	@ApiModelProperty("null")
	private Date appointTime;

	/**
	 * 01 待接单 02 已接单  03 完成 04 取消 05 待生效
	 */
	@ApiModelProperty("01 待接单 02 已接单  03 完成 04 取消 05 待生效")
	private String ioState;

	/**
	 * 优惠券主键
	 */
	@ApiModelProperty("优惠券主键")
	private Long relId;

	/**
	 * 支付备注
	 */
	@ApiModelProperty("支付备注")
	private String payRemark;

	/**
	 * 阅读数
	 */
	@ApiModelProperty("阅读数")
	private Integer readNum;

	/**
	 * 预付表主键
	 */
	@ApiModelProperty("预付表主键")
	private Long prepaymentId;

	/**
	 * 0 不公开  1 公开
	 */
	@ApiModelProperty("0 不公开  1 公开")
	private String isPublic;

	/**
	 * 结束时间
	 */
	@ApiModelProperty("结束时间")
	private Date ioEndtime;

	/**
	 * 创建时间
	 */
	@ApiModelProperty("创建时间")
	private Date createTime;

	/**
	 * 付款账户
	 */
	@ApiModelProperty("付款账户")
	private String payAcc;


	@ApiModelProperty("单价id")
	@NotNull(message = "价钱id 不能为空")
	private Long priceId;

	@ApiModelProperty("服务项id")
	@NotNull
	private Long doctServId;

	@ApiModelProperty("继续问诊订单id")
	private Long orderId;

	@ApiModelProperty("视频咨询设置ID")
	private Long videoSetId;

	@ApiModelProperty("订单生成标志,false生成 对应图文订单限制返回标志")
	private Boolean order = false;
	/**
	 * 医生id
	 */
	@ApiModelProperty("医生id")
	@NotNull
	private Long doctId;

	@ApiModelProperty("附件地址ID")
	private String fileInforId;


	/*附件*/
	@ApiModelProperty("附件")
	private String filePath;

	/*设备号*/
	@ApiModelProperty("设备号")
	private String deviceInfo;

	@ApiModelProperty("子appid")
	@JsonIgnore
	private String subAppId;

	/*附加数据*/
	@ApiModelProperty("附加数据")
	private String attach;

	/*商品描述*/
	@ApiModelProperty("商品描述")
	private String body;
	/*返回的url*/
	@ApiModelProperty("返回的url")
	private String callbackUrl;
	/*结束时间*/
	@ApiModelProperty("结束时间")
	private String expireTimes;
	/*交易类型*/
	@ApiModelProperty("交易类型")
	private String tradeType;
	@ApiModelProperty("子用户标识")
	private String subOpenId;

	/*退款单号*/
	@ApiModelProperty("退款单号")
	private String outRefundNo;
	/*退款金额*/
	@ApiModelProperty("退款金额")
	private String refundFee;
	@ApiModelProperty("微信订单号")
	private String transactionId;
	@ApiModelProperty("通知地址")
	private String notifyUrl;
	@ApiModelProperty("是否可义诊")
	private Boolean isClinic = false;

}
